Network traffic is transmitted over a network, such as the Internet, from a host (e.g., a device capable of receiving data over a network) to another host. Each host uses a specialized piece of hardware commonly referred to as a network interface (NI) to access the network. The NI is a piece of hardware found in a typical computer system that includes functionality to send and receive network traffic. Typically, network traffic is transmitted in the form of packets, where each packet includes a header and a payload. The header contains information regarding the source address, destination address, size, transport protocol used to transmit the packet, and various other identification information associated with the packet of data. The payload contains the actual data to be transmitted from the network to the receiving system. The contents and transmission of the aforementioned packets on the network are typically governed by Transmission Control Protocol (TCP) and Internet Protocol (IP).
Processing TCP/IP traffic requires significant host resources. To decrease the amount of processing required by the host, TCP offload engines (TOE) have been developed. TOEs typically correspond to specialized hardware in chare of executing TCP/IP. The use of a TOE enables the host to offload the execution of TCP/IP, thereby freeing CPU cycles on the host to improve host performance.